## ── Attaching packages ───────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.0.0 ✔ purrr 0.2.5
## ✔ tibble 1.4.2 ✔ dplyr 0.7.6
## ✔ tidyr 0.8.1 ✔ stringr 1.3.1
## ✔ readr 1.1.1 ✔ forcats 0.3.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
## Parsed with column specification:
## cols(
## nomeParlamentar = col_character(),
## idCadastro = col_integer(),
## sgUF = col_character(),
## sgPartido = col_character(),
## tipoDespesa = col_character(),
## especDespesa = col_character(),
## fornecedor = col_character(),
## CNPJCPF = col_character(),
## tipoDocumento = col_integer(),
## dataEmissao = col_datetime(format = ""),
## valorDocumento = col_double(),
## valorGlosa = col_integer(),
## valorLíquido = col_double()
## )
Primeiro precisamos remover os valores líquidos negativos e aqueles valores que não representam deputados. Para isso, utilizo o filter e extraio apenas os resultados válidos. Em seguida, agrupo os parlamentares e extraio a soma dos valores líquidos com as funções group_by e summarise, respectivamente. Por fim, realizo um ordenamento para os dez valores mais altos de gastos e os dez valores mais baixos para construção do gráfico.
gastosDeputados <-
dados %>%
filter(!is.na(idCadastro) & valorLíquido >= 0) %>%
group_by(nomeParlamentar) %>%
summarise(gasto = sum(valorLíquido))
deputadosGastadores <-
gastosDeputados %>%
arrange(desc(gasto)) %>%
slice(1:10)
deputadosEconomicos <-
gastosDeputados %>%
arrange(gasto) %>%
slice(1:10)
plot_ly(deputadosGastadores, y =~ gasto, x =~ reorder(nomeParlamentar, gasto), marker = list(color = "#99d8c9")) %>%
layout(title = "Deputados que mais gastaram", yaxis = list(title = "R$"), xaxis = list(title ="", tickangle = -90))
## No trace type specified:
## Based on info supplied, a 'bar' trace seems appropriate.
## Read more about this trace type -> https://plot.ly/r/reference/#bar
plot_ly(deputadosEconomicos, y =~ gasto, x =~ reorder(nomeParlamentar, gasto), marker = list(color = "#99d8c9")) %>%
layout(title = "Deputados que menos gastaram", yaxis = list(title = "R$"), xaxis = list(title ="", tickangle = -90))
## No trace type specified:
## Based on info supplied, a 'bar' trace seems appropriate.
## Read more about this trace type -> https://plot.ly/r/reference/#bar
group <-
dados %>%
filter(tipoDocumento == 2) %>%
group_by(sgUF) %>%
summarise(gasto = sum(valorLíquido))
first <-
group %>%
arrange(desc(gasto)) %>%
slice(1:10)
last <-
group %>%
arrange(gasto) %>%
slice(1:10)
last
## # A tibble: 10 x 2
## sgUF gasto
## <chr> <dbl>
## 1 MA 41.0
## 2 PB 2288.
## 3 PA 5629.
## 4 SE 6840.
## 5 ES 8339.
## 6 MT 13653.
## 7 AM 15278
## 8 AL 26009.
## 9 PI 31308.
## 10 BA 34002.
Quais os partidos cujos parlamentares mais usam CEAP no estado da Paraíba? Quais são os que menos usam? Mesmas perguntas considerando valores em R$. (7,5 pts)
group <-
dados %>%
filter(sgUF == "PB") %>%
group_by(sgPartido) %>%
summarise(gasto = sum(valorLíquido))
first <-
group %>%
arrange(desc(gasto)) %>%
slice(1:5)
last <-
group %>%
arrange(gasto) %>%
slice(1:5)
limite <- read_csv("limiteMensalCEAP.csv") %>%
spread(UF, limite_mensal)
## Parsed with column specification:
## cols(
## UF = col_character(),
## limite_mensal = col_double()
## )
group <-
dados %>%
filter(!is.na(dataEmissao) & !is.na(sgUF)) %>%
mutate(dataEmissao = format(as.POSIXct(dataEmissao),"%Y-%m")) %>%
group_by(dataEmissao, nomeParlamentar, idCadastro, sgUF) %>%
summarise(gasto = sum(valorLíquido)) %>%
filter(gasto >= limite[sgUF]) %>%
group_by(idCadastro, nomeParlamentar, sgUF) %>%
summarise(quantidade = n()) %>%
arrange(desc(quantidade))
group <- group[!duplicated(group$sgUF), ]
group <-
dados %>%
filter(tipoDespesa == "Emissão Bilhete Aéreo") %>%
group_by(sgUF) %>%
summarise(gasto = sum(valorLíquido))
partidos <- c("PT", "PSDB", "PMDB")
group <-
dados %>%
filter(sgPartido %in% partidos) %>%
group_by(sgPartido, tipoDespesa) %>%
summarise(gasto = sum(valorLíquido)) %>%
spread(tipoDespesa, gasto)